package biblioteca.controlador;

import biblioteca.persistencia.*;
import biblioteca.servicio.*;
import java.util.Collection;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class LibrosControlador {
    
    private LibroServicio libroServicio;
    
    @Autowired
    @Required
    public void setLibroServicio(LibroServicio libroServicio ){
        this.libroServicio=libroServicio;
    }



    @RequestMapping(value="/ir_crear_libro", method=RequestMethod.GET)
    public String irCrearLibro(){
        return "/altaLibros";
    }
    
    @RequestMapping(value="/catalogo", method= RequestMethod.GET)
    public String irCatalogo(){
        return "/buscarLibro";
    }

    
    
    @RequestMapping(value="/crear_libro", method= RequestMethod.POST)
    public String doCrearLibro(@RequestParam("isbn")String isbn,
                               @RequestParam("titulo")String titulo,
                               @RequestParam("autor")String autor,
                               @RequestParam("editorial")String editorial,
                               @RequestParam("tieneCD")String tieneCD,
                               @RequestParam("content")String content, Model model){
        
        if(isbn.length()==0 || titulo.length()==0){
            return "redirect:menu_inicio";
        }
        
        final Libro libro=new Libro(isbn, titulo,autor,editorial, tieneCD, content);
        libroServicio.create(libro);
        return "redirect:menu_inicio";
    }

       
       
           @RequestMapping(value = "/busqueda", method = RequestMethod.GET)
    public String doBusqueda(@RequestParam("criterio") int criterio,
            @RequestParam("palabra") String palabra,Model model){
        String error = "acierto";
            if(palabra.length()==0){
                return "redirect:menu_inicio";
            }
        try{
        List<Libro> resultados = libroServicio.buscar(criterio,palabra);
        model.addAttribute("resultados", resultados);
        }catch (Exception e) {
            error= "error";
        }finally{
            model.addAttribute("error", error);
            return "/resultado_busqueda";
        }
       
    }
    
   /* @RequestMapping(value = "/busqueda", method = RequestMethod.GET)
    public String doBuscar(@RequestParam("palabra") String palabra,Model model){
        String error = "acierto";
            if(palabra.length()==0){
                return "redirect:menu_inicio";
            }
        try{
        Collection <Libro> resultados = libroServicio.getALLLibros();
        model.addAttribute("resultados", resultados);
        }catch (Exception e) {
            error= "error";
        }finally{
            model.addAttribute("error", error);
            return "/catalogo";
        }
       
    }*/
    
}
